Methods, systems, and media for presenting media content using integrated content sources

ABSTRACT

Methods, systems, and media for presenting media content using integrated content sources are provided. In some implementations, systems for presenting media content using integrated content sources are provided, the systems comprising: at least one hardware processor that is configured to: receive a control signal corresponding to a user input; generate at least one tuning instruction based on the control signal; transmit the tuning instruction to a tuner; and transmit graphical content and a set of instructions to the display device, wherein the set of instructions contains information about overlaying the graphical content on video content generated based on the tuning instruction.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional PatentApplication No. 61/839,718, filed Jun. 26, 2013, which is herebyincorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed subject matter relates to methods, systems, and media forpresenting media content using integrated content sources. Moreparticularly, the disclosed subject matter relates to presenting mediacontent using a streaming media device that can control a displaydevice, a tuner/recording device, and/or a recording device.

BACKGROUND

Streaming media devices can provide a user with media content. Forexample, a streaming media device can stream or download media contentthrough the Internet and cause the streamed or downloaded media contentto be rendered. In a more particular example, the streaming media devicecan stream or download encoded video content through the Internet. Thestreaming media device can then decode the encoded video content andtransmit the decoded video content to a display device that is capableof displaying the decoded video content. However, conventional streamingmedia devices generally do not include a tuner or a recording device. Assuch, these streaming devices cannot provide a user with tuned videocontent, such as live television programs, recorded programs, andon-demand programs. This can, for example, create a disjointedexperience for the user, where the user streams media content from thestreaming media device and then turns to a television device to watch alive, recorded, or on-demand television program.

Accordingly, it is desirable to provide new mechanisms for presentingmedia content using integrated content sources.

SUMMARY

Methods, systems, and media for presenting media content usingintegrated content sources are provided. In accordance with someimplementations of the disclosed subject matter, a system for presentingmedia content using integrated content sources is provided, the systemcomprising: at least one hardware processor that is configured to:receive a control signal corresponding to a user input; generate atleast one tuning instruction based on the control signal; transmit thetuning instruction to a tuner; and transmit graphical content and a setof instructions to a display device, wherein the set of instructionscontains information about overlaying the graphical content on videocontent generated based on the tuning instruction.

In accordance with some implementations, the hardware processor isfurther configured to generate a record instruction based on the controlsignal; and transmit the record instruction to a recording device;wherein the set of instructions contains information about overlayingthe graphical content on recorded video content generated based on therecord instruction.

In accordance with some implementations, the hardware processor isfurther configured to generate a playback instruction for playingon-demand content based on the control signal; and transmit the playbackinstruction to a recording device; wherein the set of instructionscontains information about overlaying the graphical content on theon-demand content.

In accordance with some implementations of the disclosed subject matter,a method for presenting media content using integrated content sourcesis provided, the method comprising: receiving a control signalcorresponding to a user input; generating, using at least one hardwareprocessor, at least one tuning instruction based on the control signal;transmitting the tuning instruction to a tuner; and transmittinggraphical content and a set of instructions to the display device,wherein the set of instructions contains information about overlayingthe graphical content on video content generated based on the tuninginstruction.

In accordance with some implementations of the disclosed subject matter,a non-transitory computer-readable medium containing computer-executableinstructions that, when executed by a processor, cause the process toperform a method for presenting media content using integrated contentsources is provided, the method comprising: receiving a control signalcorresponding to a user input; generating at least one tuninginstruction based on the control signal; transmitting the tuninginstruction to a tuner; and transmitting graphical content and a set ofinstructions to the display device, wherein the set of instructionscontains information about overlaying the graphical content on videocontent generated based on the tuning instruction.

In accordance with some implementations of, a system for presentingmedia content using integrated content sources is provided, the systemcomprising: means for receiving a control signal corresponding to a userinput; means for generating at least one tuning instruction based on thecontrol signal; means for transmitting the tuning instruction to atuner; and means for transmitting graphical content and a set ofinstructions to a display device, wherein the set of instructionscontains information about overlaying the graphical content on videocontent generated based on the tuning instruction.

In accordance with some implementations, the control signal istransmitted from a remote control associated with the system forcontrolling the display device

In accordance with some implementations, the system further comprisesmeans for generating a record instruction based on the control signal;and means for transmitting the record instruction to a recording device;wherein the set of instructions contains information about overlayingthe graphical content on recorded video content generated based on therecord instruction.

In accordance with some implementations, system further comprises meansfor generating a playback instruction for playing on-demand contentbased on the control signal; and means for transmitting the playbackinstruction to a recording device; wherein the set of instructionscontains information about overlaying the graphical content on theon-demand content.

In accordance with some implementations, the tuner is part of thedisplay device.

In accordance with some implementations, the recording device is part ofthe display device.

In accordance with some implementations, the turner is external to thedisplay device.

In accordance with some implementations, the recording device isexternal to the display device.

In accordance with some implementations, the system further comprisesmeans for generating a playback instruction for playing a recordedprogram based on the control signal; and means for transmitting theplayback instruction to at least one of a tuner device and a recordingdevice; wherein the set of instructions contains information aboutoverlaying the graphical content on the recorded program.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the disclosed subjectmatter can be more fully appreciated with reference to the followingdetailed description of the disclosed subject matter when considered inconnection with the following drawing, in which like reference numeralsidentify the like elements.

FIG. 1 is a block diagram of an illustrative system for presenting mediacontent using integrated content sources in accordance with someimplementations of the disclosed subject matter.

FIG. 2 is a flow chart of an illustrative process for controlling adisplay device to present media content in accordance with someimplementations of the disclosed subject matter.

FIG. 3 is a flow chart of an illustrative process for presenting mediacontent using integrated content sources using a display device inaccordance with some implementations of the disclosed subject matter.

FIG. 4 is a flow chart of an illustrative process for generating videocontent using a tuner/recording device in accordance with someimplementations of the disclosed subject matter.

DETAILED DESCRIPTION

In accordance with some implementations, as described in more detailbelow, mechanisms, including methods, systems, computer readable media,etc., for presenting media content using integrated content sources areprovided.

In some implementations, the mechanisms can be implemented using astreaming media device, a display device, a tuner/recording device, oneor more user input devices, and/or any other suitable devices. In someimplementations, each of the streaming media device, the display device,and the tuner/recording device can be an HDMI-enabled device that cancommunicate with other HDMI-enabled devices through one or more HDMIlinks. In some implementations, an HDMI link can include multiplecommunication channels. For example, the HDMI link can include one ormore Transition Minimized Differential Signaling (TMDS) channels thatcan be used to transmit audio data, video data, auxiliary data, and/orother suitable data. As another example, the HDMI link can also includea Consumer Electronics Control (CEC) channel that can be used to providemultiple CEC-enabled devices with various control functions. In a moreparticular example, a CEC-enabled device can control another CEC-enableddevice by sending and/or receiving messages that comply with the HDMICEC standard via a CEC line.

In some implementations, the streaming media device can provide thedisplay device with suitable media content. For example, the streamingmedia device can download and/or stream encoded media content (e.g.,encoded video data, encoded audio data, etc.) through a suitable network(e.g., the Internet, etc.). The streaming media device can then decodethe encoded media content and cause the decoded media content to berendered, for example, on an associated display device. As anotherexample, the streaming media device can form composite video contentbased on suitable video content and graphical overlays (e.g., bysuperimposing the graphical overlays on the video content). Thestreaming media device can then transmit the composite video content tothe display device through a suitable communication link (e.g., an HDMIlink, etc.).

In some implementations, while providing media content to the displaydevice, the streaming media device can receive one or more controlsignals relating to one or more tuning functionalities that can beperformed by a tuner. Examples of the control signals can include aninfrared signal (IR), a WiFi signal, and/or other suitable signals thatcorrespond to one or more user inputs, such as the user pressing and/orreleasing a button on the user input device, the user inputting suitableinformation using a user interface displayed on the user input device,etc.

In some implementations, the control signal can be transmitted from auser input device that is paired or otherwise coupled to the streamingmedia device. For example, the user input device can receive one or moreuser inputs (e.g., the user pressing and/or releasing a button on theuser input device, the user inputting suitable information using a userinterface displayed on the user input device, etc.). The user inputdevice can then generate one or more control signals based on the userinputs and transmit the control signals to the streaming media devicethrough a suitable communication link (e.g., an infrared (IR) link, aWiFi link, a radio frequency (RF) link, etc.).

In some implementations, the control signals can be transmitted from adevice (e.g., a television) that is capable of transmitting such controlsignals. In a more particular example, the device can receive a controlsignal (e.g., an IR signal or a WiFi signal corresponding to the userpressing and/or releasing a channel-up button on a remote control) froma user input device that is paired or otherwise connected to the device.The device can then pass the received control signal to the streamingdevice. Alternatively or additionally, the device can convert thecontrol signal into one or more instructions (e.g., HDMI CEC commands)and transmit the instructions to the streaming media device through asuitable communication link (e.g., an HDMI CEC link).

In some implementations, for example, the streaming media device may notinclude a built-in tuner that can perform tuning functionalities basedon the received control signals. In such an example, in response toreceiving the control signals, the streaming media device can instructan external tuner to perform the tuning functionalities. For example,the streaming media device can generate a set of tuning instructionsbased on the control signals and instruct a tuner to execute theinstructions. In some implementations, for example, the streaming mediadevice may not include a built-in recorder that can perform recordingand/or playback functionalities (e.g., recording a program, playing arecorded program, etc.) based on the received control signals. In suchan example, in response to receiving the control signals, the streamingmedia device can generate a set of instructions to instruct an externalrecording device to perform the recording functionalities and/or toplayback recorded programs.

In a more particular example, in response to receiving one or morecontrol signals indicating the user pressing and/or releasing aparticular button of the user device (e.g., a channel-up button, achannel-down button, a channel number button, a record button, a playbutton, etc.), the streaming media device can convert the controlsignals into one or more HDMI CEC instructions indicating that theparticular button has been pressed or released by the user (e.g., a“user control pressed” instruction, a “user control releasedinstruction,” etc.).

In another more particular example, in response to receiving one or morecontrol signals corresponding to the user selecting a particulartelevision channel that should be tuned to (e.g., by selecting achannel-up button, a channel-down button, a channel button, etc. using auser input device), the streaming media device can convert the controlsignals into one or more HDMI CEC instructions that can instruct a tunerto tune to the particular television channel (e.g., a “tuner stepincrement” instruction, a “tuner step decrement” instruction, a “record”instruction, a “playback” instruction, and/or any other suitableinstructions).

In some implementations, the streaming media device can transmit theinstructions to perform tuning functionalities, recordingfunctionalities, and/or playback functionalities to a tuner/recordingdevice. For example, the streaming media device can transmit theinstructions to a display device. The display device can then generatevideo content using a tuner and/or a recording device that is integratedwith or coupled to the display device based on the instructions. Asanother example, the streaming media device can transmit theinstructions to a tuner/recording device. The tuner/recording device canthen generate video content using a built-in tuner and/or a built-inrecording device based on the tuning instructions. As yet anotherexample, the streaming media device can transmit the instructions to thedisplay device that may not include a built-in tuner and/or a built-inrecording device. The display device can then transmit the instructionsto the tuner/recording device that is capable of executing the tuninginstructions.

In some implementations, the display device can obtain suitable videocontent and graphical content from difference sources and combine thevideo content and the graphical content into composite video content. Insome implementations, the video content can be obtained from a suitablesource (e.g., the tuner/recording device, the streaming media device,on-demand streaming media providers, television service providers,recorded programs, etc.). For example, as described above, the displaydevice can obtain video content (e.g., live television programs,recorded programs, on-demand programs, etc.) based a set of instructionstransmitted from the streaming media device. In a more particularexample, the display device can instruct a tuner integrated with orcoupled to the display device to generate suitable video content basedon the instructions (e.g., a set of HDMI CEC instructions). In anothermore particular example, the display device can instruct a recordingdevice integrated with or coupled to the display device to record aprogram, play a recorded program, and/or perform any other suitablerecording and/or playback functionalities.

As another example, the display device can receive video content from atuner/recording device. In a more particular example, thetuner/recording device can generate the video content based on a set ofinstructions transmitted from the streaming media device (e.g., a “tunerstep increment” instruction, a “tuner step decrement” instruction, a“record” instruction, a “playback” instruction, etc.). Thetuner/recording device can then transmit the video content to thedisplay device through a suitable communication link, such as an HDMIlink.

In some implementations, the streaming media device can transmit to thedisplay device graphical content that can be rendered with suitablevideo content in the form of graphical overlays, such as on-screendisplays, electronic program guides, user interfaces for setting atuner/recording device, user interfaces for scheduling, editing, and/ordeleting a recording using a recording device, video-on-demand (VOD)catalogs, DVR etc. The streaming media device can also transmit a set ofinstructions relating to rendering the graphical content to the displaydevice. In some implementations, the set of instructions can include anysuitable information relating to forming graphical overlays based on thegraphical content and rendering the graphical overlays. For example, theset of instructions can include encoding and/or decoding parameters thatcan be used to reconstruct image data, such as encoding modes, referenceframes, motion vectors, etc. As another example, the set of instructionscan include parameters about the location, shape, and/or size of aregion of a screen in which the graphical overlays can be displayed. Asyet another example, the set of instructions can include one or moreparameters that can be used to form the composite video content based onthe video content and the graphical overlays, such as one or more alphavalues, a set of colors that can be used to generate the composite videocontent, etc.

In some implementations, the display device can form graphical overlaysbased on the graphical content and the set of instructions transmittedfrom the streaming device. The display device can then combine thegraphical overlays and the video content into composite video contentbased on the set of instructions. For example, the display device canchange the color and/or transparency of the video content and/or thegraphical overlays based on the alpha values contained in the set ofinstructions. The display device can then superimpose the graphicaloverlays on the video content based on a suitable algorithm, such as analpha algorithm.

These and other features for presenting media content using integratedcontent sources are described herein in connection with FIGS. 1-4.

Turning to FIG. 1, an example 100 of a system for presenting mediacontent using integrated content sources is provided in accordance withsome implementations of the disclosed matter. As shown, system 100 caninclude a streaming media device 110, one or more user input device(s)120, a display device 130, and a tuner/recording device 140.

Streaming media device 110 can be any suitable device that is capable ofreceiving, processing, converting, and/or transmitting media content,and/or performing any other suitable functions. Examples of streamingmedia devices include a streaming media player, a media center computer,a DVD recorder, a BLU-RAY player, a digital video recorder, a televisiondevice, a tablet computing device, a laptop, a desktop, a mobile phone,a game console, etc.

User input device(s) 120 can be any suitable device that is capable ofreceiving and/or processing user inputs, generating and transmittingcontrol signals based on the received user inputs, and/or performing anyother suitable functions. For example, user input device(s) 120 caninclude a remote control, a mobile phone, a tablet computer, a laptopcomputer, a desktop computer, a personal data assistant (PDA), aportable email device, a game console, a voice recognition system, agesture recognition system, a keyboard, a mouse, etc. In someimplementations, user input device(s) 120 can receive any suitable userinputs. For example, the user inputs can include one or more inputsentered by a user corresponding to one or more functions that can beperformed by one or more of streaming media device 110, display device130, tuner/recording device 140, and/or any other suitable components ofsystem 100. In a more particular example, the user inputs can includethe user pressing and/or releasing one or more buttons of a remotecontrol. In another more particular example, the user inputs can includethe user selecting one or more suitable buttons on a user interfacedisplayed on user input device(s) 120.

Display device 130 can be any suitable device that is capable ofreceiving, converting, processing, and/or presenting media content, suchas a streaming media player, a media center computer, a CRT display, aLCD, a LED display, a plasma display, a touch-screen display, asimulated touch screen, a television device, a tablet user input device,a mobile phone, etc. In some implementations, display device 130 canpresent the user with three-dimensional content.

Tuner/recording device 140 can be any suitable device that is capable ofreceiving, converting, processing, recording, and/or presenting mediacontent, and/or performing any other suitable functions, such as aset-top box, a DVD recorder, a digital video recorder, a television, acomputer, a mobile phone, etc.

In some implementations, as shown in FIG. 1, each of display device 130and tuner/recording device 140 can include one or more suitable tuners,such as a terrestrial tuner, a satellite tuner, a cable tuner, an IPtuner, etc. In some implementations, the tuner(s) can be integrated withdisplay device 130 and/or tuner/recording device 140. Alternatively, thetuner(s) can be external tuners that can be coupled to display device130 and/or tuner/recording device 140 in a suitable manner.

In some implementations, each of streaming media device 110, user inputdevice(s) 120, display device 130, and tuner/recording device(s) 140 canbe any of a general purpose device, such as a computer or a specialpurpose device such as a client, a server, etc. Any of these general orspecial purpose devices can include any suitable components such as ahardware processor (which can be a microprocessor, digital signalprocessor, a controller, etc.), memory, communication interfaces,display controllers, input devices, a storage device (which can includea hard drive, a digital video recorder, a solid state storage device, aremovable storage device, or any other suitable storage device), etc.

In some implementations, each of streaming media device 110, displaydevice 130, and tuner/recording device 140 can be connected to userinput device(s) 120 through communication links 150, 152, and 154,respectively. In some implementations, streaming media device 110 can beconnected to tuner/recording device 140 and display device 130 throughcommunication links 160 and 170, respectively. In some implementations,display device 130 can be connected to tuner/recording device(s) 140through communication link 180. Communication links 150, 152, 154, 160,170, and 180 can be any suitable communication links, such as networklinks, dial-up links, wireless links, hard-wired links, any othersuitable communication links, or a combination of such links. In someimplementations, each of communication links 150, 152, 154, 160, 170,and 180 can include one or more infrared (IR) communication links,High-Definition Multimedia Interface (HDMI) links, local area network(LAN) links, etc.

In some implementations, each of streaming media device 110, user inputdevice(s) 120, display device 130, and tuner/recording device 140 can bean HDMI-enabled device that can communicate with other HDMI-enableddevices through one or more HDMI links. In some implementations, an HDMIlink can include multiple communication channels. For example, the HDMIlink can include one or more Transition Minimized Differential Signaling(TMDS) channels that can be used to transmit audio data, video data,auxiliary data, and/or other suitable data. As another example, the HDMIlink can also include a Consumer Electronics Control (CEC) channel thatcan be used to provide multiple CEC-enabled devices with various controlfunctions. In a more particular example, a CEC-enabled device cancontrol another CEC-enabled device by sending and/or receiving messagesthat comply with the HDMI CEC standard via a CEC line.

In some implementations, an HDMI-enabled device can identify otherdevices of system 100 and communicate with a particular device that hasbeen identified. For example, the HDMI-enabled device can identifydevices that are connected to the HDMI-enabled device through a physicaladdress discovery process. In a more particular example, theHDMI-enabled device can generate its own physical address (e.g.,0.0.0.0) and allocate a physical address to each device that isconnected to the HDMI-enabled device (e.g., by appending a port numberonto its own physical address). In some implementations, theHDMI-enabled device can store the physical addresses associated with theconnected devices and send messages to a particular physical addressthrough an HDMI link. As another example, an HDMI-enabled device canalso identify devices that are connected to the HDMI-enabled devicethrough a logical address allocation process. More particularly, forexample, upon detecting a connected device, the HDMI-enabled device canidentify the type of the connected device (e.g., a display device, atuner/recording device, a streaming media device, etc.) and allocate alogical address to the connected device. In some implementations, thelogical address can define the type of the connected device and serve asan identifier of the connected device. In some implementations, messagescan be addressed to a particular logical address of an HDMI-enableddevice through a CEC link.

Each of streaming media device 110, user input device(s) 120, displaydevice 130, and tuner/recording device(s) 140 can be implemented as astand-alone device or integrated with other components of system 100.

Turning to FIG. 2, an example 200 of a process for controlling a displaydevice to present media content using integrated content sources inaccordance with some implementations of the disclosed subject matter isshown. In some implementations, process 200 can be implemented in asuitable streaming media device (e.g., streaming media device 110 ofFIG. 1).

As shown, process 200 can begin by waiting to receive a control signaltransmitted from a user input device at 202. For example, process 200can determine whether a control signal has been received at a suitablereceiver. In a more particular example, process 200 can determinewhether a receiver of the streaming media device (e.g., an IR receiver,an HDMI receiver, etc.) has received a control signal transmitted from auser input device (e.g., a remote control, a mobile phone, etc.).

While waiting to receive a control signal, process 200 may provide adisplay device with suitable media content. For example, the streamingmedia device can download encoded media content (e.g., encoded videodata, encoded audio data, etc.) through a suitable network (e.g., theInternet, etc.). The streaming media device can then decode the encodedmedia content and cause the decoded media content to be rendered. Asanother example, the streaming media device can generate composite videocontent based on suitable video content and graphical overlays (e.g., bysuperimposing the graphical overlays on the video content). Thestreaming media device can then transmit the composite video content tothe display device through a suitable communication link (e.g., an HDMIlink, etc.).

At 204, process 200 can receive one or more control signals transmittedfrom the user input device. Any suitable control signals can be receivedin some implementations. For example, the control signals can correspondto one or more user inputs received by the user input device (e.g., auser pressing and/or releasing a button on a remote control, selecting aportion of a user interface displayed on a user input device, etc.). Insome implementations, the user inputs can indicate one or more functionsthat can be performed by one or more of the streaming media device, thedisplay device, the tuner/recording device, and/or any other suitabledevices. In a more particular example, the control signals cancorrespond to one or more user inputs that can indicate a televisionchannel that a user has selected to watch. In some implementations, theuser inputs can include an input that can indicate the number of thetelevision channel (e.g., the user selecting a button corresponding tothe number using a user input device). In some implementations, the userinputs can include an input indicating that the user has selected toswitch from a current television channel that is being displayed to anext available channel (e.g., the user selecting a channel-up button orchannel-down button using a user input device).

In another more particular example, the control signals can correspondto one or more user inputs indicative of a user request to record one ormore portions of a program (e.g., a user selection of a “record” buttonusing a user input device). In yet another more particular example, thecontrol signals can correspond to one or more user inputs indicative ofa user request to playback a recorded program (e.g., a user selection ofa “play” button using a user input device).

In still another more particular example, the control signals cancorrespond to one or more user inputs that can indicate that one or moreof the streaming media device, the display device, the tuner/recordingdevice, etc., should be turned on or off. In some implementations, thecontrol signals can cause one or more of these devices to power on oroff. In some implementations, a control signal can be generated by theuser input device in response to the user selecting a particular button(e.g., a “play” button) using the user input device. The user inputdevice can then transmit the control signal to the streaming mediadevice. In response to receiving the control signal, the streaming mediadevice can automatically power on and switch to a suitable media contentinput (e.g., an HDMI input). In some implementations, the streamingmedia device can also transmit the control signal to one or more otherdevices (e.g., the display device, the tuner/recording device, etc.) andcause those devices to power on and switch to a suitable input channel(e.g., an HDMI input) based on the control signal.

In some implementations, the control signals can be received in anysuitable manner. For example, the control signals can be transmittedfrom the user input device through a suitable communication link, suchas an infrared (IR) and/or radio frequency communication link, an HDMICEC link, an HDMI High-Speed Data link, a local-area network (LAN)communication link, etc.

At 206, process 200 can generate one or more instructions based on thereceived control signals. The instructions can include any suitableinformation that can be used to that can instruct one or more tunersand/or recording devices to perform suitable tuning functionalities,recording functionalities, playback functionalities, etc. For example,the instructions can include information about the identifications ofone or more devices that are capable of receiving, processing and/orexecuting tuning functionalities, recording functionalities, playbackfunctionalities, etc. In a more particular example, the instructions caninclude the addresses and/or descriptions associated with the devices.In some implementations, the instructions can also include informationthat can identify a default device (e.g., addresses, descriptions, etc.of the default device) to execute the instructions in the case wheremultiple devices are available to receive, process, and/or execute theinstructions.

As another example, the instructions can include information about oneor more particular types of tuners and/or recording devices that canperform the instructions. In a more particular example, the instructionscan include information that can indicate that one or more of theinstructions can be processed and/or executed by one or more of a cabletuner, a satellite tuner, a terrestrial tuner, an IP tuner, etc.

As yet another example, the instructions can include one or moreinstructions that can define one or more channels to which a tuner cantune. In a more particular example, the instructions can include aninstruction that can instruct the tuner to tune to one or moreparticular frequencies, one or more combinations of a network ID, atransport stream ID, and a service ID, and/or any other suitableidentifiers of one or more channels. In another more particular example,the instructions can include an instruction that can instruct the tunerto tune to a channel associated with a particular channel number and/orchannel call sign. In yet another more particular example, theinstructions can include a channel-up instruction and/or a channel-downinstruction that can instruct the tuner to switch from a current channelto a next available channel.

As still another example, the instructions can include information thatcan be used to record a program, such as information that can identifythe program, information that can identify a source that provides theprogram, timing information related to the recording (e.g., a start timeof the recording, an end time of the recording, a duration of therecording, etc.), and/or any other suitable information.

In accordance with some implementations, the instructions can begenerated in any suitable manner. For example, in response to receivingone or more control signals (e.g., IR signals transmitted from the userinput device) indicating information about a particular channel that auser has selected to watch, process 200 can process the control signaland generate one or more instructions that can instruct a suitable tunerto tune to that particular channel. In a more particular example, inresponse to receiving one or more control signals indicating the userpressing and/or releasing a particular button of the user input device(e.g., a record button, a play button, a channel-up button, achannel-down button, a channel number button, etc.), process 200 canconvert the control signals into one or more HDMI CEC instructionsindicating that the particular button has been pressed or released bythe user (e.g., a “user control pressed” instruction, a “user controlreleased” instruction, etc.). In another more particular example, inresponse to receiving one or more control signals indicating the user'sdesire to switch to a next available channel (e.g., by selecting achannel-up button or a channel-down button of a remote control or a userinterface displayed on a user input device), process 200 can convert thecontrol signals into one or more HDMI CEC instructions indicating that atuner should tune to the next available channel (e.g., a “tuner stepincrement” instruction, a “tuner step decrement” instruction, etc.).

As another example, upon receiving the control signals, process 200 canuse the control signals as a set of instructions. In a more particularexample, in response to receiving one or more control signals (e.g., IRsignals, HDMI CEC signals, etc.) that include information about aparticular channel that a user has selected to watch, process 200 cantransmit the received control signals as a set of tuning instructions,playback instructions, recording instructions, etc. to a device that iscapable of processing the control signals.

Next, at 208, process 200 can transmit the instructions to atuner/recording device. The tuner/recording device can be any suitabledevice that is capable of performing tuning functions, recordingfunctions, playback functions, and/or any other suitable functions basedon one or more of the instructions. For example, the tuner/recordingdevice can be integrated with or coupled to a display device (e.g.,display device 120 of FIG. 1). As another example, the tuner/recordingdevice can be a tuner/recording device 130 as described above inconnection with FIG. 1.

In some implementations, the instructions can be transmitted to thetuner in any suitable manner. For example, the streaming media devicecan transmit the instructions to the tuner/recording device through asuitable communication link (e.g., an HDMI CEC link, an IR or RF link, aLAN communication link, etc.). As another example, the instructions canbe transmitted to the tuner/recording device through a device that iscapable of transmitting the instructions. In a more particular example,the instructions can be transmitted from the streaming media device tothe display device. The display device can then transmit theinstructions to the tuner/recording device.

At 210, process 200 can generate graphical content that can be used toform one or more graphical overlays. The graphical content can containany suitable data and/or information that can be used to form one ormore graphical overlays (e.g., on-screen displays, electronic programguides, user interfaces for setting a tuner/recording device, userinterfaces for scheduling, editing, and/or deleting a recording using arecording device, video-on-demand (VOD) catalogs, DVR etc.) that can bedisplayed with suitable video content on a screen. For example, thegraphical content can include any suitable combination of text, stillimages, moving images, sound, etc. In a more particular example, thegraphical content can include one or more uncompressed still imagesand/or moving images having suitable sizes and/or resolutions. In someembodiments, each of the images can include a given number of pixels(e.g., having a given number of rows and a given number of columns ofpixels).

In another more particular example, the graphical content can includecompressed image data that can be used to reconstruct one or more stillimages and/or moving images. In some implementations, the compressedimage data can be generated based on a suitable lossy or losslesscompression protocol. In some implementations, the compressed image datacan include one or more encoded images and suitable information that canbe used to reconstruct uncompressed still and/or images (e.g., motionvectors, encoding modes, reference frame numbers, etc.).

In yet another more particular example, the graphical content caninclude a set of geometric primitives that can be used to form vectorgraphics. In a more particular example, the geometric primitives caninclude lines, polylines, polygons, curves, circles, ellipses, colorgradient, etc. that can be used to form vector graphics.

At 210, process 200 can generate a set of instructions relating torendering the graphical content. The set of instructions can contain anysuitable information about rendering the graphical content. For example,the set of instructions can include information about forming graphicaloverlays based on the graphical content. In a more particular example,the set of instructions can include information about the format of thegraphical content (e.g., compressed image data, uncompressed image data,text strings, etc.). In another more particular example, the set ofinstructions can include information that can be used to reconstructuncompressed still images and/or moving images from one or morecompressed images (e.g., encoding modes, reference frames, motionvectors, etc.).

As another example, the set of instructions can include informationabout the location, shape, and/or size of a region of a screen in whichthe graphical content can be rendered. In a more particular example, theset of instructions can include one or more coordinate instructions thatcan define the location and/or size of the region with respect to ascreen on which the graphical content will be rendered. In someimplementations, the coordinate instructions can include one or morecoordinates (e.g., x-coordinates, y-coordinates, z-coordinates, etc.)that can define the start positions, end positions, and/or othersuitable parameters of the region in one or more particular dimensions(e.g., x dimension, y dimension, z dimension, etc.). In another moreparticular example, the set of instructions can include one or morecoordinate instructions that can define the location and/or size of theregion with respect to a region in which video content can be displayed.In some implementations, the coordinate instructions can include one ormore coordinates that can indicate the offsets between the location ofthe region in which the video content can be rendered and the locationof the region in which the graphical content can be rendered. In someimplementations, the coordinate instructions can include one or morecoordinates that can define an overlapping region in which both of thevideo content and the graphical content can be rendered.

As yet another example, the set of instructions can include one or moreinstructions that can instruct the display device to combine thegraphical overlays and the video content in a suitable manner. In someimplementations, for example, the composite video content can begenerated by composing the video content and the graphical overlays withsuitable colors and/or transparency based on a suitable blendingalgorithm, such as an alpha blending algorithm. In such an example, theset of instructions can include one or more alpha values that canindicate the transparency of the video content and/or the graphicaloverlays and/or information about colors (e.g., R, G, B, etc.) that canbe used to generate the composite video content. In someimplementations, for example, the graphical overlays can be blended withthe video content based on an alpha value of 1. In such an example, thegraphical overlays can be fully opaque while the video content can befully transparent when they are combined into the composite videocontent. In some implementations, for example, the instructions caninclude a set of alpha values each of which can correspond to one ormore pixels of the graphical overlays to be blended.

At 212, process 200 can transmit the graphical content and the set ofinstructions about rendering the graphical content to a display device.The graphical content and the set of instructions can be transmitted inany suitable manner. For example, the graphical content can betransmitted to the display device as a video output via a suitablecommunication link, such as an HDMI link that can connect the streamingmedia device to the display device. As another example, the graphicalcontent can be transmitted in the form of one or more compact datastreams, such as a Hyper Text Markup Language (HTML) Document ObjectModel (DOM) stream, an HDMI high-speed data stream, etc.

The set of instructions can be transmitted in any suitable manner. Forexample, the set of instructions can be transmitted to the displaydevice through a suitable communication link, such as an HDMI CEC link,an IR or RF link, a LAN link, etc. In a more particular example, the setof instructions can be transmitted in the form of a set of IR commands,a set of CEC commands, etc.

In some implementations, after performing step 212, process 200 canreturn back to step 202.

Turning to FIG. 3, an example 300 of a process for presenting mediacontent using integrated content sources in accordance with someimplementations of the disclosed subject matter is shown. In someimplementations, process 300 can be implemented in system 100 asillustrated in FIG. 1. In a more particular example, process 300 can beimplemented in display device 130 as illustrated in FIG. 1.

As shown, process 300 can begin by receiving graphical content that canbe used to form one or more graphical overlays at 302. The graphicalcontent can contain any suitable information and can be received in anysuitable manner. In some implementations, for example, the graphicalcontent can be generated by and transmitted from the streaming mediadevice as described above in connection with FIG. 2.

At 304, process 300 can receive a set of instructions from a streamingmedia device. The set of instructions can include any suitableinformation. For example, the set of instructions can include one ormore tuning instructions, recording instructions, playback instructions,and/or any other suitable instruction generated by the streaming mediadevice. In a more particular example, the instructions can be generatedas described above in connection with FIG. 2. As another example, theset of instructions can include one or more instructions relating torendering the graphical content received at 302. In a more particularexample, the instructions relating to rendering the graphical contentcan be generated and transmitted as described above in connection withFIG. 2.

At 306, process 300 can obtain video content that can be used to formcomposite video content. The video content can be obtained in anysuitable manner. For example, the video content can be received from asuitable video source (e.g., television programs, movies, streaming livecontent, pay-per-view programs, on-demand programs (e.g., as provided invideo-on-demand (VOD) systems), Internet content (e.g., streamingcontent, downloadable content, Webcasts, etc.)). In a more particularexample, the video content can be obtained from the streaming mediadevice.

As another example, the video content can be generated based at least inpart on the set of instructions received at 304. More particularly, forexample, the video content can be generated based on one or more of theinstructions that are received at 304. In a more particular example, thedisplay device can generate the video content based on one or more ofthe instructions. In some implementations, the display device caninstruct one or more suitable tuner/recording devices (e.g.,tuner/recording devices that are integrated with or coupled to thedisplay device) to tune to a channel based on one or more of the tuninginstructions (e.g., a “tuner step increment” instruction, a “tuner stepdecrement” instruction, a frequency instruction, etc.), to play arecorded program, to play an on-demand program, and/or to provide videocontent in any other suitable manner.

In some implementations, the video content can be obtained from atuner/recording device. For example, the tuner/recording device cangenerate the video content and transmit the video content to the displaydevice. In a more particular example, as illustrated in FIG. 4, thetuner/recording device can generate the video content based on one ormore of the instructions (e.g., by tuning to a channel, playing arecorded program, playing on-demand content, and/or generating videocontent in any other suitable manner).

As shown, process 400 can begin by waiting for an instruction at 402.For example, while waiting, process 400 can determine if one or moreinstructions have been received by a receiver of the tuner/recordingdevice (e.g., an IR receiver, an HDMI receiver, etc.).

At 404, process 400 can receive one or more instructions for performingtuning functionalities, recording functionalities, and/or playbackfunctionalities. The instructions can be received in any suitablemanner. For example, the instructions can be transmitted from a devicethat generates the instructions. In a more particular example, asdescribed above in connection with FIG. 2, the instructions can betransmitted from the streaming media device. In such an example, thestreaming media device can receive one or more control signalscorresponding to one or more user inputs, generate one or moreinstructions based on the control signals, and transmit the instructionsto the tuner/recording device.

As another example, the instructions can be transmitted to thetuner/recording device through a device that can receive theinstructions from another device. In a more particular example, asdiscussed above in connection with FIG. 2, the streaming media devicecan generate one or more instructions and transmit the instructions tothe display device. The display device can then transmit theinstructions to the tuner/recording device through a suitablecommunication link.

At 406, process 400 can generate video content based on theinstructions. For example, the tuner/recording device can generate thevideo content using one or more suitable tuners (e.g., tuners that areintegrated with or coupled to the tuner/recording device in a suitablemanner). In a more particular example, the tuner/recording device canidentify a tuner that can execute the tuning instructions (e.g., basedon the address, description, and/or other suitable information of thetuner contained in one or more of the tuning instructions). Thetuner/recording device can then instruct the identified tuner to tune toa channel based on one or more of the tuning instructions (e.g., achannel number instruction, a channel-up instruction, a channel-downinstruction, a frequency instruction, etc.). The tuned video contentgenerated by the identified tuner can then be used as the video content.

As another example, the tuner/recording device can retrieve recordedprograms, on-demand programs, Internet content, streaming programs,and/or any other suitable video content based on the instructions.

Next, at 408, process 400 can transmit the video content to the displaydevice. The video content can be transmitted in any suitable manner. Forexample, the video content can be transmitted from a transmitter of thetuner/recording device to a receiver of the display device through asuitable communication link, such as an HDMI link, a LAN link, etc.

In some implementations, after performing step 408, process 400 canreturn back to step 402.

Referring back to FIG. 3, at 308, process 300 can generate compositevideo content based on the graphical content and the video content. Thecomposite video content can be generated in any suitable manner. In someimplementations, for example, process 300 can generate one or moregraphical overlays (e.g., including one or more still images, movingimages, text, user interfaces, etc.) based on one or more instructionsreceived at 304. Process 300 can then combine the graphical overlayswith the video content in a suitable manner. In a more particularexample, process 300 can extract uncompressed image data (e.g., one ormore uncompressed still images and/or moving images) from the receivedgraphical content and use the uncompressed image data as graphicaloverlays. In another more particular example, process 300 can extractcompressed image data (e.g., one or more compressed still images and/ormoving images) from the graphical content. Process 300 can thendecompress the compressed image data based on the instructions receivedat 302 (e.g., encoding modes, reference frames, motion vectors, etc.).In yet another more particular example, process 300 can extract a set ofgeometric primitives (e.g., lines, polylines, polygons, curves, etc.)and generate graphical overlays based on the geometric primitives andthe instructions received at 302.

In some implementations, process 300 can combine the video content andthe graphical overlays based on one or more of the instructions receivedat 304. The video content and the graphical overlays can be combined inany suitable manner. For example, process 300 can combine a first imagethat is included in the video content and a second image that isincluded in the graphical overlays based on one or more of theinstructions. In a more particular example, process 300 can locate anoverlapping region in which the first image and the second image can becombined based on one or more of the instructions (e.g., the coordinateinstructions that can define the overlapping region). In another moreparticular example, process 300 can adjust the transparency and/or colorof the first image and/or the second image based on one or more of theinstructions. More particularly, for example, the transparency and/orcolor of the first image and the second image can be adjusted based onone or more alpha values provided by the instructions. In someimplementations, in such an example, process 300 can then combine thefirst image and the second image to form a third image (e.g., bysuperimposing the first image on the second image).

At 310, process 300 can cause the composite video content to bedisplayed. The composite video content can be displayed in any suitablemanner. For example, process 300 can cause the composite video contentto be displayed based on one or more instructions received at 304. In amore particular example, process 300 can identify a first region of ascreen in which the graphical overlays can be displayed and a secondregion of the screen in which the video content can be displayed basedon one or more of the instructions (e.g., the coordinate instructionsdescribed above in connection with FIG. 2). Process 300 can then causethe graphical overlays and the video content to be displayed in thefirst region and the second region respectively. In another moreparticular example, process 300 can locate an overlapping region inwhich both the graphical overlays and the video content can be displayed(e.g., the coordinate instructions described above in connection withFIG. 2). More particularly, for example, process 300 can displaycomposite video content (e.g., based on an alpha blending algorithm) inthe identified overlapping region.

It should be understood that the above steps of the flow diagrams ofFIGS. 2-4 can be executed or performed in any order or sequence notlimited to the order and sequence shown and described in the figure.Also, some of the above steps of the flow diagrams of FIGS. 2-4 can beexecuted or performed substantially simultaneously where appropriate orin parallel to reduce latency and processing times. Furthermore, itshould be noted that FIGS. 2-4 are provided as examples only. At leastsome of the steps shown in these figures may be performed in a differentorder than represented, performed concurrently, or altogether omitted.

In some implementations, any suitable computer readable media can beused for storing instructions for performing the processes describedherein. For example, in some implementations, computer readable mediacan be transitory or non-transitory. For example, non-transitorycomputer readable media can include media such as magnetic media (suchas hard disks, floppy disks, etc.), optical media (such as compactdiscs, digital video discs, Blu-ray discs, etc.), semiconductor media(such as flash memory, electrically programmable read only memory(EPROM), electrically erasable programmable read only memory (EEPROM),etc.), any suitable media that is not fleeting or devoid of anysemblance of permanence during transmission, and/or any suitabletangible media. As another example, transitory computer readable mediacan include signals on networks, in wires, conductors, optical fibers,circuits, any suitable media that is fleeting and devoid of anysemblance of permanence during transmission, and/or any suitableintangible media.

The provision of the examples described herein (as well as clausesphrased as “such as,” “e.g.,” “including,” and the like) should not beinterpreted as limiting the claimed subject matter to the specificexamples; rather, the examples are intended to illustrate only some ofmany possible aspects.

Accordingly, methods, systems, and media for presenting media contentusing integrated content sources are provided.

Although the disclosed subject matter has been described and illustratedin the foregoing illustrative implementations, it is understood that thepresent disclosure has been made only by way of example, and thatnumerous changes in the details of implementation of the disclosedsubject matter can be made without departing from the spirit and scopeof the disclosed subject matter, which is limited only by the claimsthat follow. Features of the disclosed implementations can be combinedand rearranged in various ways.

What is claimed is:
 1. A system for presenting media content usingintegrated content sources, comprising: at least one hardware processorof a streaming media device that is configured to: receive a controlsignal corresponding to a user input; generate at least one tuninginstruction based on the control signal; generate graphical content;transmit the tuning instruction to a display device via an HDMIconnection, wherein the display device is to instruct a tuner externalto the display device to generate video content based on the tuninginstruction, and wherein the display device is to present the videocontent generated by the tuner and the graphical content; generate a setof instructions that instruct the display device to render the graphicalcontent generated by the streaming media device as one or more graphicaloverlays on the video content generated by the tuner external to thedisplay device based on the tuning instruction, wherein the set ofinstructions includes one or more coordinates that define an overlappingregion in which both the video content and the graphical overlays arerendered and one or more parameters for modifying a transparency of thevideo content generated by the tuner; and transmit the graphicalcontent, including at least one geometric primitive that can be used toform vector graphics, and the set of instructions from the streamingmedia device to the display device via the HDMI connection, wherein thegraphical content contains data usable to form the one or more graphicaloverlays at the one or more coordinates based on the set ofinstructions.
 2. The system of claim 1, wherein the control signal istransmitted from a remote control associated with the system forcontrolling the display device.
 3. The system of claim 1, wherein the atleast one hardware processor is further configured to: generate a recordinstruction based on the control signal; and transmit the recordinstruction to a recording device; wherein the set of instructionscontains information about overlaying the graphical content on recordedvideo content generated based on the record instruction.
 4. The systemof claim 1, wherein the at least one hardware processor is furtherconfigured to: generate a playback instruction for playing on-demandcontent based on the control signal; and transmit the playbackinstruction to at least one of a tuner device and a recording device;wherein the set of instructions contains information about overlayingthe graphical content on the on-demand content.
 5. The system of claim1, wherein the at least one hardware processor is further configured to:generate a playback instruction for playing a recorded program based onthe control signal; and transmit the playback instruction to at leastone of a tuner device and a recording device; wherein the set ofinstructions contains information about overlaying the graphical contenton the recorded program.
 6. The system of claim 1, wherein the hardwareprocessor is further configured to allocate an address to the displaydevice, and wherein the tuning instruction, the graphical content, andthe set of instructions are transmitted from the streaming media deviceto the display device via the HDMI connection using the allocatedaddress.
 7. A method for presenting media content using integratedcontent sources, comprising: receiving, by a streaming media device, acontrol signal corresponding to a user input; generating, by thestreaming media device, at least one tuning instruction based on thecontrol signal; generating, by the streaming media device, graphicalcontent; transmitting, by the streaming media device, the tuninginstruction to a display device via an HDMI connection, wherein thedisplay device is to instruct a tuner external to the display device togenerate video content based on the tuning instruction, and wherein thedisplay device is to present the video content generated by the tunerand the graphical content; generating, by the streaming media device, aset of instructions that instruct the display device to render thegraphical content generated by the streaming media device as one or moregraphical overlays on the video content generated by the tuner externalto the display device based on the tuning instruction, wherein the setof instructions includes one or more coordinates that define anoverlapping region in which both the video content and the graphicaloverlays are rendered and one or more parameters for modifying atransparency of the video content generated by the tuner; andtransmitting the graphical content, including at least one geometricprimitive that can be used to form vector graphics, and the set ofinstructions from the streaming media device to the display device viathe HDMI connection, wherein the graphical content contains data usableto form the one or more graphical overlays at the one or morecoordinates based on the set of instructions.
 8. The method of claim 7,wherein the control signal is transmitted from a remote controlassociated with the system for controlling the display device.
 9. Themethod of claim 7, further comprising: generating a record instructionbased on the control signal; and transmitting the record instruction toa recording device; wherein the set of instructions contains informationabout overlaying the graphical content on recorded video contentgenerated based on the record instruction.
 10. The method of claim 7,further comprising: generating a playback instruction for playingon-demand content based on the control signal; and transmitting theplayback instruction to one of a tuner device and a recording device,wherein the set of instructions contains information about overlayingthe graphical content on the on-demand content.
 11. The method of claim7, further comprising: generating a playback instruction for playing arecorded program based on the control signal; and transmitting theplayback instruction to at least one of a tuner device and a recordingdevice; wherein the set of instructions contains information aboutoverlaying the graphical content on the recorded program.
 12. The methodof claim 7, further comprising allocating an address to the displaydevice, wherein the tuning instruction, the graphical content, and theset of instructions are transmitted from the streaming media device tothe display device via the HDMI connection using the allocated address.13. A non-transitory computer-readable medium containingcomputer-executable instructions that, when executed by a processor,cause the processor to perform a method for presenting media contentusing integrated content sources, the method comprising: receiving, by astreaming media device, a control signal corresponding to a user input;generating, by the streaming media device, at least one tuninginstruction based on the control signal; generating, by the streamingmedia device, graphical content; transmitting, by the streaming mediadevice, the tuning instruction to a display device via an HDMIconnection, wherein the display device is to instruct a tuner externalto the display device to generate video content based on the tuninginstruction, and wherein the display device is to present the videocontent generated by the tuner and the graphical content; generating, bythe streaming media device, a set of instructions that instruct thedisplay device to render the graphical content generated by thestreaming media device as one or more graphical overlays on the videocontent generated by the tuner external to the display device based onthe tuning instruction, wherein the set of instructions includes one ormore coordinates that define an overlapping region in which both thevideo content and the graphical overlays are rendered and one or moreparameters for modifying a transparency of the video content generatedby the tuner; and transmitting the graphical content, including at leastone geometric primitive that can be used to form vector graphics, andthe set of instructions from the streaming media device to the displaydevice via the HDMI connection, wherein the graphical content containsdata usable to form the one or more graphical overlays at the one ormore coordinates based on the set of instructions.
 14. Thenon-transitory computer-readable medium of claim 13, wherein the controlsignal is transmitted from a remote control associated with the systemfor controlling the display device.
 15. The non-transitorycomputer-readable medium of claim 13, wherein the method furthercomprises: generating a record instruction based on the control signal;and transmitting the record instruction to a recording device; whereinthe set of instructions contains information about overlaying thegraphical content on recorded video content generated based on therecord instruction.
 16. The non-transitory computer-readable medium ofclaim 13, wherein the method further comprises: generating a playbackinstruction for playing on-demand content based on the control signal;and transmitting the playback instruction to one of a tuner device and arecording device, wherein the set of instructions contains informationabout overlaying the graphical content on the on-demand content.
 17. Thenon-transitory computer-readable medium of claim 13, wherein the methodfurther comprises: generating a playback instruction for playing arecorded program based on the control signal; and transmitting theplayback instruction to at least one of a tuner device and a recordingdevice; wherein the set of instructions contains information aboutoverlaying the graphical content on the recorded program.
 18. Thenon-transitory computer-readable medium of claim 13, wherein the methodfurther comprises allocating an address to the display device, whereinthe tuning instruction, the graphical content, and the set ofinstructions are transmitted from the streaming media device to thedisplay device via the HDMI connection using the allocated address.